--- title: "2022" created: 2025-11-28 tags: - 算法 --- # 2022 ## 题目 [2022](https://www.lanqiao.cn/paper/3826/problem/2186/) ![[image-65296633.png]] ## 思路分析 背包问题 ## 代码实现 ```cpp #include using namespace std; #define endl '\n' typedef long long LL; const int N=2030; int a[N]; int n=2022,m=2022; LL f[N][15][N];//从前i个物品中选了j件 总和等于k的所有选法的集合 属性count int main() { ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); for(int i=1;i<=n;i++) a[i]=i; for(int i=0;i<=n;i++) f[i][0][0]=1;//前i物品中选0件 价值为0的选法数都有1种 for(int i=1;i<=n;i++){ for(int j=1;j<=10;j++){ for(int k=0;k<=m;k++){ f[i][j][k]+=f[i-1][j][k]; if(k>=a[i]) f[i][j][k]+=f[i-1][j-1][k-a[i]]; } } } cout<